package com.showSpring.service.impl;

import com.showSpring.dao.IUserDao;
import com.showSpring.domain.User;
import com.showSpring.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

// 加入容器
@Service
/**
 * @Transactional 事务注解
 *    定义位置：
 *      1. 接口、父类上
 *         表示实现当前接口的类、继承父类的子类都应用spring声明式事务
 *      2. 接口方法上
 *         接口的实现类，重写了方法，也应用接口中的事务定义注解
 *      3. 实现类上
 *         该实现类的所有方法都应用事务
 *      4. 实现类的方法上， 实现类的方法应用事务
 *    事务属性：
 *      readOnly = false 默认值，读写事务，可以进行CRUD操作
 *      propagation = Propagation.REQUIRED 默认值表示当前执行的方法必须有事务环境。
 */
@Transactional(readOnly = false,propagation = Propagation.REQUIRED)
public class UserServiceImpl implements IUserService {

    // 注入userDao
    @Autowired
    private IUserDao userDao;

    public void setUserDao(IUserDao userDao1){
        this.userDao = userDao1;
    }


    @Override
    public List<User> findAll() {
       return userDao.findAll();
    }
}
